﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using CRM.Objetos;
using System.Data;

namespace CRM.CapaDatos
{
    public class DAOCampana
    {
        /// <summary>
        /// Variable para almacenar la cadena de conexion
        /// </summary>
        string cadenaConexion = string.Empty;

        /// <summary>
        /// Constructor
        /// </summary>
        /// <param name="cadena">Cadena de Conexion</param>
        public DAOCampana(string cadena)
        {
            cadenaConexion = cadena;
        }

        /// <summary>
        /// Metodo que lista campanas
        /// </summary>
        /// <returns>Lista de campanas</returns>
        public List<Campana> Listar()
        {
            IDbConnection con = GenericProvider.CreateConnection(cadenaConexion);
            IDbCommand com = GenericProvider.CreateStoredProcedure(con, "LISTAR_CAMPANAS");

            con.Open();
            IDataReader drCampanas = com.ExecuteReader();
            List<Campana> listaCampanas = new List<Campana>();

            while (drCampanas.Read())
            {
                listaCampanas.Add(Construir(drCampanas));
            }

            drCampanas.Close();
            con.Close();
            return listaCampanas;
        }

        /// <summary>
        /// Metodo que construye un objeto campana a partir de un cursor
        /// </summary>
        /// <param name="drUsuarios">Cursor de base de datos</param>
        /// <returns>Objeto campana</returns>
        private Campana Construir(IDataReader drUsuarios)
        {
            Campana obj = new Campana();
            obj.Id = drUsuarios.GetInt32(0);
            obj.Nombre = drUsuarios.GetString(1);
            return obj;
        }

    }
}
